Fix TableModel validator to accept pandas StringDtype#1063
Fix TableModel validator to accept pandas StringDtype#1063LucaMarconato merged 8 commits intoscverse:mainfrom
Conversation
The TableModel validator now properly accepts modern pandas StringDtype for instance_key columns, along with CategoricalDtype with string categories. This fixes scverse#1062 where the validator incorrectly rejected StringDtype columns, forcing users to use deprecated object dtypes. The new validation logic: - Explicitly checks for pd.StringDtype instances - Accepts pd.CategoricalDtype with string categories - Maintains backward compatibility with integer and object dtypes - Provides clearer error messages 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
for more information, see https://pre-commit.ci
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1063 +/- ##
=======================================
Coverage 91.93% 91.94%
=======================================
Files 51 51
Lines 7664 7673 +9
=======================================
+ Hits 7046 7055 +9
Misses 618 618
🚀 New features to boost your workflow:
|
|
I though of closing in favor of work being done here: #1073, but actually I will use this opportunity to polish a bit the check. So I will reopen and integrate some changes here, in particular I will add tests. |
There was a problem hiding this comment.
Pull request overview
Updates TableModel’s instance_key dtype validation to support modern pandas string types, addressing #1062 and reducing the need for deprecated object dtypes.
Changes:
- Accept
pd.StringDtypeforinstance_keycolumns. - Accept
pd.CategoricalDtypewhen categories are integer- or string-like. - Add parametrized tests covering accepted/rejected
instance_keydtypes (string, categorical, int, float, object).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
src/spatialdata/models/models.py |
Expands instance_key dtype validation logic and updates the error message for clarity. |
tests/models/test_models.py |
Adds coverage for instance_key dtype validation across pandas string/categorical/integer cases. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…/spatialdata into fix-stringdtype-validation
The TableModel validator now properly accepts modern pandas StringDtype for instance_key columns, along with CategoricalDtype with string categories.
This fixes #1062 where the validator incorrectly rejected StringDtype columns, forcing users to use deprecated object dtypes. The new validation logic:
🤖 Generated with Claude Code